#! /bin/bash
oIFS=$IFS
> ../dados/grafo2.net
> exercicio_2.gnu
> ../dados/componentes
while read autor
do
	degree=$(grep -iw  "${autor}" ../dados/coautores | tr -s " " | tr "&" "\n"  | sed "s/^ //g" | sed "s/ $//g"  | sort | uniq -i | wc -l)

	degree=$((degree -1 ))


	autorID=$(grep -iw -m 1 "$autor" ../dados/dicionario | cut -d " " -f1)
	
#	echo "$autorID $degree"
	

	IFS=$'\n'	
	relacionados=


	#Gerando o .net para o pajek
	for relacionado in  $(grep -iw  "${autor}" ../dados/coautores | tr -s " " | tr "&" "\n"  | sed "s/^ //g" | sed "s/ $//g"  | sort | uniq -i ) 
	do
	

			relacionadoID=$(grep -iw -m 1 "${relacionado}" ../dados/dicionario | cut -d " " -f1 | tr "\n" " ")

			if [ $? -eq 0 ] && [ $relacionadoID ] 
			then
				echo "$autorID $relacionadoID " >> ../dados/grafo2.net
			fi
	done

	
	IFS=$oIFS
done < ../dados/autores

#Encontrando o numero de vertice de todos os graficos 
echo "Numero de vertices no grafo: $(cat ../dados/autores | wc -l)"

#Encontrando o numero de componentes conectados  de cada tamanho
cat ../dados/componentes.clu | sed "1d"  | sort -n | uniq -c | tr -s " " |  cut -d " " -f 2 | sort -n | uniq -c  | awk '{print $2 " " $1}' > ../dados/componentes


#informa qual e o tamanho do maior componente conectado
echo "O tamanho do maior componente conectado e $(cat ../dados/componentes | cut -d " " -f1 | sort -nr | head -n 1)"



#Plot com escala log
echo "#! /usr/bin/gnuplot" > exercicio_2.gnu
echo "set term png" >> exercicio_2.gnu
echo 'set output "../graficos/exercicio2.png"' >> exercicio_2.gnu
echo "set log x" >> exercicio_2.gnu
echo "set log y" >> exercicio_2.gnu
echo 'set title "Tamanho do componente por quantidade de componentes"' >> exercicio_2.gnu
echo 'set xlabel "Tamanho do componente (log)"' >> exercicio_2.gnu
echo 'set ylabel "Numero de componentes conectados (log)"' >> exercicio_2.gnu
echo 'plot "../dados/componentes"' >> exercicio_2.gnu

#Gera o grafico
chmod +x exercicio_2.gnu

if [ ! -f /usr/bin/gnuplot ]
then
	echo -e '\033[01;31mGnuplot nao instalado\033[00;37m'
else
	./exercicio_2.gnu
fi




